1. Technical Field
The present invention relates generally to a system and method for controlling access to software. More specifically, the invention relates to a system and method for time-based software deployment and licensing through, for example, the Internet.
2. Description of Related Art
As the development of software increases, a common issue that arises are means of software deployment to end users. One method of deployment involves distributing commercial software in CDs or floppy disks. With this method of deployment, the copyright protection and commercial software licenses are traditionally enforced by limiting the installation of a single copy of software to one machine per each software license. If one wishes to use the same software in another machine, one must uninstall the software from one machine before it can be installed into another machine. To prevent multiple installations using a single license, a “key” may be assigned for installation, and registration may require the serial number of a machine or a computer network card. One example of software deployed in this way is Microsoft Office 2000.
Another commonly used approach for deploying software is software deployment through the Internet. Common technology used for Internet-based software deployment includes the use of programming languages such as Java for building cross-platform, Internet deliverable applications, or the use of Active X technology that is language independent but platform specific. A well-known example of Internet-based software deployment based on ActiveX is the Internet Explorer 4.0 and 5.0 which is downloadable and can be automatically installed into a Windows system. In this approach, one can visit, for example, a Microsoft web site using Netscape or an earlier version of Internet Explorer such as IE 3.0 to automatically download and install IE 4.0 or 5.0.
However, when software is distributed over the Internet, it becomes more difficult to enforce software licensing. Indeed, license-based access control is still in its infancy. Currently there are two common approaches for enforcement of software licenses deployed through the Internet. One approach involves requiring a potential software user to register and to obtain privilege access (through for example, username/password login) to a secured software depository site for software download from the Internet. In other words, access control is built in the software depository site domain level, not the level of software itself. However, this approach has the disadvantage of having no control over access to specific software once a user gains access to a software depository site.
Another approach involves allowing public software downloads, but having the software expire within a certain period of time once it is activated for use. Thus, a license is given for a fixed period of time. This is referred to as “period based” software. For example, Rational Enterprise will set a 21-day trial period before the software will disable itself. Such a deployment model, however, poses two problems. First, it does not prevent the same user from using a different computer to install an additional copy of the software, i.e., one can always download another copy of the software and install it into another machine when one copy of the period based software expires. Second, once the “time clock” starts, a user loses the opportunity to utilize the software once the time expires, even if (s)he does not even actually use the software during that trial time period (much like renting a video for a three-day period but never actually getting to watch the video during that period).
Accordingly, an efficient, accurate and effective technique for deploying and licensing software to users while avoiding the problems of the prior art, is highly desirable.